<script setup>
	import {
		deleteUserAddressByIdAPI,
		getUserAddressListByIdAPI
	} from '@/services/address'
	import {
		useAddressStore,
		useUserStore
	} from '@/stores/index.js'
	import {
		onShow
	} from '@dcloudio/uni-app'
	import {
		ref
	} from 'vue'
	const options = [{
		text: '修改',
		style: {
			backgroundColor: '#007aff'
		}
	}, {
		text: '删除',
		style: {
			backgroundColor: '#dd524d'
		}
	}]
	// 获取收货地址列表数据
	const addressList = ref([])
	const getUserAddressData = async () => {
		const user = useUserStore()
		if (user.profile) {
			const res = await getUserAddressListByIdAPI({
				u_id: user.profile.u_id
			})
			// console.log(2222222222,res,user.profile)
			addressList.value = res.data.data

		} else {
			uni.showToast({
				title: '获取地址失败',
				icon: 'error',
				duration: 1000
			})
		}

	}

	// 初始化调用(页面显示)
	onShow(() => {
		getUserAddressData()
	})

	// 删除收货地址
	const onDeleteAddress = (id) => {
		// 二次确认
		uni.showModal({
			content: '删除地址?',
			confirmColor: '#f00',
			success: async (res) => {
				if (res.confirm) {
					// 根据id删除收货地址
					await deleteUserAddressByIdAPI({a_id:id})
					// 重新获取收货地址列表
					getUserAddressData()
				}
			},
		})
	}

	const onModifyAddress = (id) => {
		// // 返回上一页
		// uni.navigateBack()
		console.log('id is-----'+id)
		uni.navigateTo({
			url: `/subpkg/myinfo/address-form/address-form?id=${id}`
		})
	}

	// 确认收货地址
	const onConfirmAddress = (item) => {
		// 修改地址
		const addressStore = useAddressStore()
		addressStore.changeSelectedAddress({
			receiver: item.a_name,
			contact: item.a_tel,
			o_address: item.o_address,
			a_id:item.a_id
		})
		// // 返回上一页
		uni.navigateBack()

	}
	const swiperClick = (id,e) => {
		// console.log(88888888,id,e)
		let {
			content
		} = e;
		
		console.log()
		if (content.text == '修改') {
			onModifyAddress(id)
			
		}else if(content.text == '删除'){
			onDeleteAddress(id)
		}
	}
</script>

<template>
	<view class="viewport">
		<!-- 地址列表 -->
		<scroll-view enable-back-to-top class="scroll-view" scroll-y>
			<view v-if="addressList.length" class="address">
				<uni-swipe-action class="address-list">
					<!-- 收货地址项 -->
					<uni-swipe-action-item class="item" v-for="item in addressList" :key="item.a_id"
						:right-options="options" @click="swiperClick(item.a_id,$event)">
						<view class="item-content" @click="onConfirmAddress(item)">
							<view class="user">
								{{ item.a_name }}
								<text class="contact">{{ item.a_tel }}</text>
								<text v-if="item.isDefault" class="badge">默认</text>
							</view>
							<view class="locate">{{ item.o_address }}</view>
						</view>
					</uni-swipe-action-item>
				</uni-swipe-action>
			</view>
			<view v-else class="blank">暂无收货地址</view>
		</scroll-view>
		<!-- 添加按钮 -->
		<view class="add-btn">
			<navigator hover-class="none" url="/subpkg/myinfo/address-form/address-form?id=0">
				新建地址
			</navigator>
		</view>
	</view>
</template>

<style lang="scss">
	page {
		height: 100%;
		overflow: hidden;
	}

	/* 删除按钮 */
	.delete-button {
		display: flex;
		justify-content: center;
		align-items: center;
		width: 50px;
		height: 100%;
		font-size: 28rpx;
		color: #fff;
		border-radius: 0;
		padding: 0;
		background-color: #cf4444;
	}

	.viewport {
		display: flex;
		flex-direction: column;
		height: 100%;
		background-color: #f4f4f4;

		.scroll-view {
			padding-top: 20rpx;
		}
	}

	.address {
		padding: 0 20rpx;
		margin: 0 20rpx;
		border-radius: 10rpx;
		background-color: #fff;

		.item-content {
			line-height: 1;
			padding: 40rpx 10rpx 38rpx;
			border-bottom: 1rpx solid #ddd;
			position: relative;

			.edit {
				position: absolute;
				top: 36rpx;
				right: 30rpx;
				padding: 2rpx 0 2rpx 20rpx;
				border-left: 1rpx solid #666;
				font-size: 26rpx;
				color: #666;
				line-height: 1;
			}
		}

		.item:last-child .item-content {
			border: none;
		}

		.user {
			font-size: 28rpx;
			margin-bottom: 20rpx;
			color: #333;

			.contact {
				color: #666;
			}

			.badge {
				display: inline-block;
				padding: 4rpx 10rpx 2rpx 14rpx;
				margin: 2rpx 0 0 10rpx;
				font-size: 26rpx;
				color: #27ba9b;
				border-radius: 6rpx;
				border: 1rpx solid #27ba9b;
			}
		}

		.locate {
			line-height: 1.6;
			font-size: 26rpx;
			color: #333;
			word-break: break-all;

		}
	}

	.blank {
		margin-top: 300rpx;
		text-align: center;
		font-size: 32rpx;
		color: #888;
	}

	.add-btn {
		height: 80rpx;
		text-align: center;
		line-height: 80rpx;
		margin: 30rpx 20rpx;
		color: #fff;
		border-radius: 80rpx;
		font-size: 30rpx;
		background-color: red;
	}
</style>